package com.shiwenping.reply.tools;

import android.os.Environment;
import android.util.Log;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.net.URI;
import java.util.ArrayList;
import java.util.List;

import rx.Observable;

/**
 * @author shiwenping
 * @date 17-11-8 下午5:36
 */

public class AllUtils {
    public static final String LINE_SEPARATOR = System.getProperty("line.separator");

    public static void printLine(String tag, boolean isTop) {
        if (isTop) {
            Log.e(tag, "╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════");
        } else {
            Log.e(tag, "╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════");
        }
    }

    /**
     * 输出Json格式的Log
     *
     * @param tag        tag
     * @param msg        json
     * @param headString 标题
     */
    public static void printJson(String tag, String msg, String headString) {

        String message;

        try {
            if (msg.startsWith("{")) {
                JSONObject jsonObject = new JSONObject(msg);
                message = jsonObject.toString(4);//最重要的方法，就一行，返回格式化的json字符串，其中的数字4是缩进字符数
            } else if (msg.startsWith("[")) {
                JSONArray jsonArray = new JSONArray(msg);
                message = jsonArray.toString(4);
            } else {
                message = msg;
            }
        } catch (JSONException e) {
            message = msg;
        }

        printLine(tag, true);
        message = headString + LINE_SEPARATOR + message;
        String[] lines = message.split(LINE_SEPARATOR);
        for (String line : lines) {
            Log.e(tag, "║ " + line);
        }
        printLine(tag, false);
    }


    public static <T> ArrayList<T> toObs(T t) {
        ArrayList<T> list = new ArrayList<>();
        list.add(t);
        return list;
    }
    /**
     * 通过url获取文件名字
     * @param url   完整url
     * @return  返回文件名
     */
    public static String urlToFileName(String url)
    {
        URI uri = URI.create(url.replace("\\","/"));
        String last_url = uri.getRawPath().replace("/","");
        return last_url;
    }

    public static String toFileSavePath(String url)
    {
        return Environment.getExternalStoragePublicDirectory("") + "/reply/file/" + urlToFileName(url);
    }
}
